table of contents
SSH_CONFIG(5) | File Formats Manual | SSH_CONFIG(5) |
NOM¶
ssh_config
—
fichiers de configuration du client SSH
d'OpenSSH
SYNOPSIS¶
- $HOME/.ssh/config
- /etc/ssh/ssh_config
DESCRIPTION¶
ssh
obtient ses données de
configuration depuis les sources suivantes, et dans l'ordre suivant :
la ligne de commande, le fichier de configuration de l'utilisateur
($HOME/.ssh/config), et enfin le fichier de
configuration de la machine
(/etc/ssh/ssh_config).
Pour chaque paramètre, on utilise la première valeur obtenue. Les fichiers de configuration peuvent contenir des sections de spécifications par machine (« Host »). Les paramètres contenus dans ces sections ne s'appliquent que pour les machines qui correspondent à un des motifs de la spécification. Le nom de machine est celui qui est passé sur la ligne de commande.
Comme c'est la première valeur de chaque qui est utilisée, on peut préciser des paramètres spécifiques aux machines vers le début du fichier, et les valeurs par défaut vers la fin.
Le fichier de configuration a le format suivant :
Les commentaires sont les lignes vides, et celles qui commencent par le caractère « # ».
Dans les autres cas, une ligne a le format
« mot-clef arguments ». On peut séparer
les options de configuration avec des espaces ou des espaces optionnels, et
un seul caractère « = ». Ce dernier
format est utile pour pouvoir se passer de l'espace lorsqu'on utilise
l'option -o
de ssh
,
scp
et sftp.
Les mots-clef possibles et leur signification sont détaillés ci-après. Note : Les mots-clef ne sont pas sensibles à la casse, mais les valeurs le sont.
Host
- Restreint les déclarations suivantes (jusqu'au prochain mot-clef
Host
) aux machines qui correspondent aux motifs passés après le mot-clef. On peut utiliser les caractères joker « * » et « ? » dans les motifs. On peut utiliser un simple « * » pour définir des valeurs par défaut pour toutes les machines. La machine est l'argument hostname passé sur la ligne de commande, c'est-à-dire que le nom n'est pas converti en nom canonique avant la mise en correspondance. AFSTokenPassing
- Précise si on envoie des jetons AFS (AFS tokens) à la machine distante. L'argument pour ce mot-clef est « yes » ou « no ». Cette option ne s'applique qu'à la version 1 du protocole.
BatchMode
- Si l'argument est « yes », il n'y a pas de demande de mots de passe. Utile dans des scripts ou autres traitements par lot, quand il n'y a pas d'utilisateur dans les parages pour saisir les mots de passe. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
BindAddress
- Spécifie une interface réseau pour l'émission, si on
se trouve sur une machine avec plusieurs interfaces réseau, ou avec
des adresses aliasées. Note : Cette option ne fonctionne pas
si le mot-clef
UsePrivilegedPort
a pour argument « yes ». ChallengeResponseAuthentication
- Spécifie si on utilise une méthode simulation/réponse (challenge response) pour l'authentification. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « yes ».
CheckHostIP
- Si l'argument est « yes », ssh vérifie en plus l'adresse IP dans le fichier known_hosts. Ceci permet de vérifier si une clef de machine a changé à cause d'une falsification de DNS. Si l'argument est « no », la vérification n'est pas effectuée. Par défaut « yes ».
Cipher
- Spécifie le cryptage à utiliser pour la session, dans la
version 1 du protocole. Actuellement,
« blowfish »,
« 3des » et
« des » sont supportés.
des n'est supporté dans le client
ssh
que pour l'interopérabilité avec les anciennes implémentations de la version 1 du protocole qui ne supportent pas le cryptage 3des. Son utilisation est fortement déconseillée à cause de ses faiblesses crytographiques. Par défaut « 3des ». Ciphers
- Spécifie les cryptages à utiliser pour la version 2 du
protocole par ordre de préférence. Les cryptages multiples
sont séparés par des virgules. Par défaut :
« aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, aes192-cbc,aes256-cbc ».
ClearAllForwardings
- Spécifie que toutes les redirections de ports locaux, distants et
dynamiques déclarés dans les fichiers de configuration ou
sur la ligne de commande doivent être purgés. Ce mot clef
est utilisé principalement sur la ligne de commande de
ssh
pour purger les redirections de ports définis dans les fichiers de configuration, et est automatiquement défini par scp(1) et sftp(1). L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». Compression
- Spécifie si on utilise la compression. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
CompressionLevel
- Spécifie un niveau de compression, si la compression est activée. L'argument est un entier de 1 (rapide) à 9 (meilleure compression, mais plus lent). Par défaut, le niveau est 6, ce qui est un bon compromis pour la plupart des applications. La signification de ces valeurs est identique à celle de gzip(1). Note : Cette option ne s'applique que pour la version 1 du protocole.
ConnectionAttempts
- Spécifie le nombre de tentatives (une par seconde) avant d'abandonner. L'argument pour ce mot-clef doit être un entier. Utile pour des scripts si des connexions échouent parfois. Par défaut 1.
DynamicForward
- Spécifie un port TCP/IP à rediriger sur la machine locale
par le tunnel sécurisé. Le protocole de l'application est
ensuite utilisé pour déterminer le port pour se connecter
depuis la machine distante. L'argument pour ce mot-clef est un
numéro de port. Actuellement, le protocole SOCKS4 est
supporté, et
ssh
se comporte comme un serveur SOCKS4. On peut spécifier des multiples redirections de ports, et on peut en ajouter sur la ligne de commande. Seul root a le droit de rediriger des ports privilégiés. EscapeChar
- Définit un caractère d'échappement. Par défaut « ~ ». On peut aussi définir le caractère d'échappement sur la ligne de commande. L'argument pour ce mot-clef doit être un caractère unique « ^ » suivi d'une lettre, ou « none » pour désactiver complètement le caractère d'échappement (rend la connexion transparente pour les données binaires).
ForwardAgent
- Spécifie si la connexion à l'agent d'authentification (s'il existe) doit être redirigée vers la machine distante. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ».
ForwardX11
- Spécifie si les connexions X11 sont redirigées
automatiquement dans le tunnel sécurisé, et la variable
d'environnement
DISPLAY
définie. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». GatewayPorts
- Spécifie si des machines distantes sont autorisées à
se connecter aux ports locaux redirigés. Par défaut
ssh
branche les ports redirigés sur une adresse de bouclage (loopback). Ceci évite que des machines distantes ne se connectent à des ports locaux redirigés. On peut utiliser le mot-clefGatewayPorts
pour spécifier quessh
doit connecter les ports redirigés sur une adresse joker (wildcard), et par conséquent, autorise les machines distantes à se connecter aux ports redirigés. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». GlobalKnownHostsFile
- Spécifie un fichier de base de données globale des clefs de machines à utiliser à la place de /etc/ssh/ssh_known_hosts.
HostbasedAuthentication
- Spécifie si on tente d'utiliser l'authentification basées
sur les rhosts avec l'authentification par clef publique. L'argument pour
ce mot-clef est « yes » ou
« no ». Par défaut
« no ». Cette option ne s'applique que pour la
version 2 du protocole et est similaire à
RhostsRSAAuthentication
. HostKeyAlgorithms
- Spécifie l'algorithme de clef de machine pour la version 2 du protocole que le client souhaite utiliser par ordre de préférence. La valeur par défaut pour cette option est « ssh-rsa,ssh-dss ».
HostKeyAlias
- Spécifie un alias à utiliser au lieu du vrai nom de machine lors des recherches et des sauvegardes de clef de machine dans les fichiers de base de données des clefs de machine. Cette option est utile pour faire passer plusieurs connexions ssh par un tunnel sécurisé, ou si plusieurs serveurs tournent sur une seule machine.
HostName
- Spécifie le vrai nom de la machine sur laquelle on se connecte.
Utile pour spécifier des surnoms ou des diminutifs pour des
machines. Par défaut : le nom passé sur la ligne de
commande. Les adresses adresses IP (forme numérique, donc) sont
aussi autorisées, à la fois sur la ligne de commande et par
l'intermédiaire du mot-clef
HostName
. IdentityFile
- Spécifie un fichier contenant la clef de l'utilisateur pour l'authentification RSA ou DSA. Par défaut $HOME/.ssh/identity pour la version 1 du protocole, et $HOME/.ssh/id_rsa et $HOME/.ssh/id_dsa pour la version 2 du protocole. En outre, toutes les identités déjà chargées dans l'agent d'authentification sont également utilisées pour l'authentification. Le nom de fichier peut débuter par le caractère « ~ » pour faire référence au répertoire de base (home directory) de l'utilisateur. On peut spécifier plusieurs fichiers d'identité dans les fichiers de configuration. Si c'est le cas, on essaie toutes les identités en séquence.
KeepAlive
- Spécifie si le système doit envoyer des messages TCP de
maintien de la connexion à l'autre machine. Si on envoie ces
messages, les ruptures de connexion ou les plantages d'une des machines
sont correctement signalés. Sinon, des connexions peuvent
être coupées si la route entre les deux machines est
temporairement interrompue, et ça peut être gênant.
Par défaut « yes » (pour envoyer les messages de maintien de la connexion), et le client signale si des coupures de réseau on lieu, ou si la machine distante se plante. Cette fonction est importante pour les scripts, et de nombreux utilisateurs la veulent aussi.
Pour désactiver les messages de maintien de la connexion, il faut régler la valeur à « no ».
KerberosAuthentication
- Spécifie si on utilise une authentification Kerberos. L'argument pour ce mot-clef est « yes » ou « no ».
KerberosTgtPassing
- Spécifie si on peut transférer un TGT Kerberos au serveur. Ceci ne fonctionne que si le serveur Kerberos est vraiment un kaserver AFS. L'argument pour ce mot-clef est « yes » ou « no ».
LocalForward
- Spécifie qu'un port TCP/IP sur la machine locale est redirigé par le tunnel sécurisé vers un port particulier sur la machine distante. Le premier argument est un numéro de port, et le second est de la forme machine:port. Pour les adresse IPv6, on utilise la syntaxe : machine/port. On peut spécifier plusieurs redirections de port, et on peut en ajouter en les passant en paramètres sur la ligne de commande. Seul root peut rediriger des ports privilégiés.
LogLevel
- Spécifie un niveau de verbosité pour enregistrer les
messages de
ssh
. Les valeurs possibles sont : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 et DEBUG3. Par défaut INFO. DEBUG et DEBUG1 sont équivalents. DEBUG2 et DEBUG3 spécifient les niveaux de verbosité les plus élevés pour la sortie. MACs
- Spécifie l'algorithme MAC (message authentication code) par ordre de préférence. L'algorithme MAC est utilisé dans la version 2 du protocole pour la protection de l'intégrité des données. On peut spécifier plusieurs algorithmes en les séparants par des virgules. Par défaut « hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 ».
NoHostAuthenticationForLocalhost
- On peut utiliser cette option si le répertoire de base (home directory) est partagé par plusieurs machines. Dans ce cas, la machine locale se réfère à une machine différente sur toutes les machines, et l'utilisateur peut recevoir plusieurs avertissements parce que des clefs de machines ont changé. Cette option désactive l'authentification par machine pour la machine locale. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut, on vérifie la clef de machine pour la machine locale.
NumberOfPasswordPrompts
- Spécifie le nombre de tentatives de saisie de mot de passe avant d'abandonner. L'argument pour ce mot-clef est un entier. Par défaut 3.
PasswordAuthentication
- Spécifie si on utilise l'authentification par mot de passe. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « yes ».
Port
- Spécifie le port pour se connecter sur la machine distante. Par défaut 22.
PreferredAuthentications
- Spécifie l'ordre dans lequel on essaie les méthodes
d'authentification pour la version 2 du protocole. Cette option permet au
client de choisir une méthode (par exemple
keyboard-interactive
) plutôt qu'une autre (par exemplepassword
). Par défaut « hostbased,publickey,keyboard-interactive,password ». Protocol
- Spécifie la version du protocole que
ssh
doit supporter, par ordre de préférence. Les valeurs possibles sont « 1 » et « 2 ». On peut spécifier plusieurs valeurs en les séparant par des virgules. Par défaut « 2,1 ». Ce qui signifie quessh
essaie la version 2 du protocole, puis la version 1 du protocole si la version 2 n'est pas disponible. ProxyCommand
- Spécifie la commande à utiliser lors de la connexion au
serveur. La chaîne de caractère contenant la commande est
comprise jusqu'à la fin de la ligne, et est exécutée
en utilisant l'interpréteur de commandes (shell)
/bin/sh. Dans la chaîne de commande, on
peut substituer le nom de la machine sur laquelle on se connecte par
« %h » et le port par
« %p ». La commande peut être
absolument n'importe quoi, et doit lire depuis son entrée standard
et écrire sur sa sortie standard. Elle peut éventuellement
se connecter sur un serveur sshd(8) tournant sur une
machine, ou exécuter
sshd -i
ailleurs. La gestion des clefs de machine est assurée en utilisant le nom de la machine (option « HostName ») sur laquelle on se connecte (par défaut, le nom fourni par l'utilisateur). Note :CheckHostIP
n'est pas disponible pour les connexions qui utilisent une commande mandataire (proxy command). PubkeyAuthentication
- Spécifie si on utilise l'authentification par clef publique. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « yes ». Cette option ne s'applique qu'à la version 2 du protocole.
RemoteForward
- Spécifie une redirection de port TCP/IP sur la machine distante à travers le tunnel sécurisé, vers la machine et le port spécifiés depuis la machine locale. Le premier argument est un numéro de port, et le second est de la forme machine:port. Pour les adresse IPv6, on utilise la syntaxe : machine/port. On peut spécifier plusieurs redirections de port, et on peut en ajouter en les passant en paramètres sur la ligne de commande. Seul root peut rediriger des ports privilégiés.
RhostsAuthentication
- Spécifie si on utilise l'authentification basée sur les
rhosts. Note : Cette déclaration n'affecte que la partie
cliente, et n'a aucun effet sur la sécurité. La plupart des
serveurs n'autorisent pas ce type d'authentification
(RhostsAuthentication), parce qu'elle n'est pas sécurisée.
(Voir
RhostsRSAAuthentication
) L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». Cette option ne s'applique que pour la version 1 du protocole. RhostsRSAAuthentication
- Spécifie si on utilise l'authentification basée sur les
rhosts en conjonction avec une authentification de machine basée
sur RSA. L'argument pour ce mot-clef est
« yes » ou « no ».
Par défaut « no ». Cette option ne
s'applique que pour la version 1 du protocole, et nécessite que
ssh
soit exécutable en tant que root (setuid root). RSAAuthentication
- Spécifie si on utilise l'authentification RSA. L'argument pour ce mot-clef est « yes » ou « no ». On essaie cette authentification seulement si le fichier d'identité existe, ou qu'un agent d'authentification est en cours d'exécution. Par défaut « yes ». Cette option ne s'applique que pour la version 1 du protocole.
SmartcardDevice
- Spécifie un lecteur de cartes à puce à utiliser.
L'argument de ce mot-clef est le fichier spécial que
ssh
doit utiliser pour communiquer avec le lecteur de cartes à puces pour stocker la clef privée RSA. Par défaut, aucun fichier spécial n'est spécifié, et le support des lecteurs de cartes à puces est désactivé. StrictHostKeyChecking
- Si cette option a pour argument « yes »,
ssh
ne demande pas d'ajouter les clefs de machine au fichier $HOME/.ssh/known_hosts, et refuse la connexion aux machines dont la clef de machine a changé. Ceci fournit une protection maximale contre les attaques de type « Cheval de Troie », néanmoins peut être gênant si le fichier /etc/ssh/ssh_known_hosts n'est pas très bien maintenu, ou si on se connecte fréquemment à de nouvelles machines. Cette option impose à l'utilisateur d'ajouter manuellement toutes les nouvelles machines. Si cette option a pour argument « no »,ssh
ajoute automatiquement les nouvelles clefs de machine aux fichiers des machines connues. Si cette option a pour argument « ask »,ssh
ajoute les nouvelles clefs de machine aux fichiers des machines connues si l'utilisateur confirme que c'est ce qu'il veut faire, et refuse de se connecter aux machines dont la clef a changé. Les clefs des machines connues sont vérifiées dans tous les cas. L'argument pour ce mot-clef est « yes », « no » ou « ask ». Par défaut « ask ». UsePrivilegedPort
- Spécifie si on utilise un port privilégié pour les connexions sortantes. L'argument pour ce mot-clef est « yes » ou « no ». Par défaut « no ». L'argument de ce mot-clef doit être « yes » si on se connecte sur de vieux serveurs qui ont besoin des authentifications « RhostsAuthentication » et « RhostsRSAAuthentication ».
User
- Spécifie un nom d'utilisateur à utiliser pour se connecter. Ceci peut être utile si on se connecte avec des noms d'utilisateurs différents sur des machines différentes, et évite le souci de devoir se rappeler tous les noms d'utilisateurs à passer sur la ligne de commande.
UserKnownHostsFile
- Spécifie un fichier de base de données pour l'utilisateur de clefs de machines à utiliser au lieu de $HOME/.ssh/known_hosts.
XAuthLocation
- Spécifie l'emplacement du programme xauth(1.) Par défaut /usr/X11R6/bin/xauth.
FICHIERS¶
- $HOME/.ssh/config
- C'est le fichier de configuration utilisateur. Le format de ce fichier est
décrit ci-avant. Le client
ssh
utilise ce fichier. Ce fichier ne contient normalement pas d'informations sensibles, néanmoins, il est recommandé de n'autoriser la lecture/écriture que pour l'utilisateur (son propriétaire), et aucun accès pour les autres. - /etc/ssh/ssh_config
- C'est le fichier de configuration pour toute la machine. Ce fichier définit des valeurs par défaut pour les paramètres qui ne sont pas définis dans les fichiers de configuration des utilisateurs, et pour les utilisateurs qui n'ont pas de fichier de configuration. Ce fichier doit être lisible par tout le monde.
AUTEURS¶
OpenSSH est dérivé de la version originale et libre ssh 1.2.12 par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bugs, ré-ajouté des nouvelles fonctionnalité et créé OpenSSH. Markus Friedl a contribué au support des versions 1.5 et 2.0 du protocole SSH.
TRADUCTION FRANÇAISE¶
Laurent GAUTROT <l dot gautrot at free dot fr> 08/11/2002
VOIR AUSSI¶
25 Septembre 1999 | Linux 5.14.0-427.18.1.el9_4.x86_64 |